package com.equis.estacionamientos.services {
	import com.equis.estacionamientos.services.EstacionamientoService;
	
    public class EstacionamientoServiceFactory {
		public static var INSTANCE:EstacionamientoServiceFactory = new EstacionamientoServiceFactory(EstacionamientoService);
		
		private var _classToBuild:Class = EstacionamientoService;

		private var _defaultCallbackFunction:Function = null;
		private var _defaultErrorCallbackFunction:Function = null;


		public function EstacionamientoServiceFactory(target:Class) {
			this.classToBuild = target;
		}

		public function set classToBuild(value:Class):void {
			this._classToBuild = value;
		}
		
		public function get classToBuild():Class {
			return this._classToBuild;
		}
		
		public function set defaultCallbackFunction(defaultCallbackFunction:Function):void {
			this._defaultCallbackFunction =  defaultCallbackFunction;
		}
		
		public function set defaultErrorCallbackFunction(defaultErrorCallbackFunction:Function):void {
			this._defaultErrorCallbackFunction = defaultErrorCallbackFunction;
		}

		public function buildService():EstacionamientoService {
			var ret:EstacionamientoService;
			ret = new classToBuild();
			
			ret.callbackFunction = _defaultCallbackFunction;
			ret.errorCallbackFunction = _defaultErrorCallbackFunction;

			return ret;
		}
    }
}